package com.gdiss.www.service;

import com.gdiss.www.entity.CmsContent;
import com.gdiss.www.vo.ResultVo;
import com.gdiss.www.vo.request.CmsContentRequest;
import com.gdiss.www.vo.response.ListCmsContent;
import com.gdiss.www.vo.response.ListCmsContentResponse;
import com.gdiss.www.vo.response.ShowCmsContentResponse;

import java.util.List;

/**
 * <p>
 *  文章服务类
 * </p>
 *
 * @author yly
 * @since 2021-11-30
 */
public interface CmsContentService {

    /**
     * 新增文章
     * @param contentRequest 文章
     * @return 是否新增成功
     */
    ResultVo<? super ShowCmsContentResponse> insertCmsContent(CmsContentRequest contentRequest);

    /**
     * 通过id查看文章
     * @param id 文章id
     * @return 文章
     */
    ResultVo<? super ShowCmsContentResponse> queryCmsContent(int id);

    /**
     * 分页查看文章列表
     * @param curr 当前页码
     * @param size 页面大小
     * @param categoryId 分类栏目id
     * @return 文章列表
     */
    ResultVo<? super ListCmsContentResponse> queryCmsContentByCategory(int curr, int size, int categoryId);

    /**
     * 根据搜索内容查看文章
     * @param curr 当前页码
     * @param size 页面大小
     * @param search 搜索内容
     * @return 文章列表
     */
    ResultVo<? super ListCmsContentResponse> queryCmsContentBySearch(int curr, int size, String search);

    /**
     * 根据搜索内容统计记录数目
     * @param search 搜索内容
     * @return 记录数目
     */
    int countBySearch(String search);

    /**
     * 根据分类id统计记录页数
     * @param pageSize 页面大小
     * @param categoryId 分类栏目id
     * @return 页数
     */
    int countPageByCategory(int pageSize, int categoryId);
}
